package com.example.demo.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.demo.bean.sysmenu.SysMenuDO;
import com.example.demo.dto.sysmenu.TreeRoleMenuRep;
import com.example.demo.dto.sysmenu.TreeSysMenuRep;

import java.util.List;

public interface ISysMenuService extends IService<SysMenuDO> {
    /**
     * 获取树形菜单
     * @return
     */
    public List<TreeSysMenuRep> getTreeSysMenu();

    /**
     * 获取菜单列表--不含按钮
     */
    public List<TreeSysMenuRep> getSysMenuListWithoutAction();

    /**
     * 获取菜单列表--全部
     */
    public List<TreeRoleMenuRep> getSysMenuAllList();

    /**
     * 添加菜单
     * @param sysMenuDO 菜单项
     * @return
     */
    public int addSysMenu(SysMenuDO sysMenuDO);

    /**
     * 删除菜单
     * @param sysMenuDO
     * @return
     */
    public int deleteSysMenu(SysMenuDO sysMenuDO);

    /**
     * 更新菜单
     * @param sysMenuDO
     * @return
     */
    public int updateSysMenu(SysMenuDO sysMenuDO);

    /**
     * 查询菜单
     * @param sysMenuDO
     * @return
     */
    public SysMenuDO getSysMenu(SysMenuDO sysMenuDO);

    /**
     * 查询菜单所有子按钮
     * @param sysMenuDO
     */
    public List<SysMenuDO> getAllActionByMenuId(SysMenuDO sysMenuDO);

    /**
     * 根据用户id获取用户权限
     * @param userId
     * @return
     */
    public List<String> getUserPermissions(Long userId);
}

